/*
 *-------------------------------------------------------------------
 * Aufgabe: Zu implementieren ist eine Klasse Complex, die anhand
 *          diverser Operatoren genutzt werden soll.
 *-------------------------------------------------------------------
 */



#include "Complex.h"


// Konstruktor
Complex::Complex ()
{ 
    re = 0; im = 0;
};

// Konstruktor mit Real- und Imaginaerteil
Complex::Complex(double real, double imag)
{ 
    re = real;
    im = imag;
};

// Destruktor
Complex::~Complex() {};

// Copy-Konstruktor
Complex::Complex(const Complex& com)
{
    re = com.re;
    im = com.im;
};

// Zuweisungsoperator
Complex Complex::operator=(const Complex &com)
{
    re = com.re;
    im = com.im;
    return *this;
};

// Additionsoperator
Complex Complex::operator+(const Complex &com)
{ 
    Complex c;

    c.re = re + com.re;
    c.im = im + com.im;
    return (Complex) c;
};

// Inkrementierungsoperator
Complex Complex::operator+=(Complex &com)
{
    re += com.re;
    im += com.im;
    return *this;
};

// Vergleichsoperator
int Complex::operator==(const Complex &com)
{
    return((im == com.im) && (re == com.re));
};

// Ausgabeoperator
ostream& operator<<(ostream &onTheOs, const Complex &com)
{
    return onTheOs <<com.re << " " << com.im;
};

















